home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / ZENER.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  4.4 KB  |  151 lines

  1. 10  'ZENER - 17 MAY 92 rev. 30 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  PROG$="zener"
  4. 40  COMMON EX$,PROG$,R,E
  5. 50  CLS
  6. 60  COLOR 7,0,1
  7. 70  UL$=STRING$(80,205)                    'horizontal line
  8. 80  ER$=STRING$(80,32)                     'erase line
  9. 90  '
  10. 100  '.....start
  11. 110  CLS
  12. 120  COLOR 15,2
  13. 130  PRINT " ZENER DIODE VOLTAGE REGULATOR";
  14. 140  PRINT TAB(57);"by George Murphy VE3ERP ";
  15. 150  COLOR 1,0:PRINT STRING$(80,223);
  16. 160  COLOR 7,0
  17. 170  GOSUB 1220  'diagram
  18. 180  PRINT
  19. 190  COLOR 0,7:LOCATE CSRLIN,22
  20. 200  PRINT " Press 1 to continue or 0 to EXIT....."
  21. 210  COLOR 7,0
  22. 220  Z$=INKEY$:IF Z$=""THEN 220
  23. 230  IF Z$="0"THEN CLS:RUN EX$
  24. 240  IF Z$="1" THEN 260
  25. 250  GOTO 220
  26. 260  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  27. 270  INPUT " ENTER: Input MAXIMUM voltage..............Vmax =";VMAX
  28. 280  IF VMAX=0 THEN GOSUB 1180:GOTO 270
  29. 290  INPUT " ENTER: Input MINIMUM voltage..............Vmin =";VMIN
  30. 300  IF VMIN=0 THEN GOSUB 1180:GOTO 290
  31. 310  INPUT " ENTER: Zener Diode voltage................Vreg =";VREG
  32. 320  IF VREG=0 THEN GOSUB 1180:GOTO 310
  33. 330  IF VREG>=VMIN THEN 380
  34. 340  INPUT " ENTER: Load current in amperes............Load =";I
  35. 350  IF I=0 THEN GOSUB 1180:GOTO 340
  36. 360  VIEW PRINT 13 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 450
  37. 370  '
  38. 380  '.....invalid input
  39. 390  BEEP:COLOR 0,7
  40. 400  PRINT " Voltage of Zener diode must be lower than minimum input voltage.";
  41. 410  PRINT " ...Press any key to start over..."
  42. 420  COLOR 7,0
  43. 430  IF INKEY$=""THEN 430 ELSE 100
  44. 440  '
  45. 450  '.....calculate resistor value
  46. 460  R=(VMIN-VREG)/(1.1*I)           'series resistor in ohms
  47. 470  R=INT(R*10+0.5)/10               'rounded to nearest 0.1 -
  48. 480  '
  49. 490  '.....calculate watts
  50. 500  PD=(((VMAX-VREG)/R)-I)*VREG   'power dissipation of zener diode in watts
  51. 510  RW=(5*(VMAX-VREG)^2/R)        'wattage rating for RS
  52. 520  LW=I*VREG                     'load in watts
  53. 530  BIN=LW:GOSUB 1120:LW$=B$      'correct binary error
  54. 540  L$=" Load @"+STR$(I)+" amps"
  55. 550  LL$=" ="+LW$+" watts"
  56. 560  '
  57. 570  '.....display results
  58. 580  COLOR 0,7
  59. 590  LOCATE 5,2:PRINT "        "                   'replace Vmin
  60. 600  LOCATE 8,27:PRINT "THEN +                 "      'replace Vreg
  61. 610  FOR E=9 TO 11:LOCATE E,26:PRINT SPC(11):NEXT E
  62. 620  LOCATE 12,27:PRINT "THEN SOUND "
  63. 630  GOSUB 700
  64. 640  GOSUB 810
  65. 650  GOSUB 920
  66. 660  COLOR 7,0
  67. 670  GOSUB 1380    'screen dump
  68. 680  CLS:E=-1:CHAIN"precires"
  69. 690  '
  70. 700  '.....format resistor read-out
  71. 710  W$="1/4"                       'standard resistor wattage rating
  72. 720  IF RW>0.25 THEN W$="1/2"
  73. 730  IF RW>0.5 THEN W$="1"
  74. 740  IF RW>1 THEN W$=STR$(INT(RW)+1)
  75. 750  W$=" -  "+W$+" watt minimum "  'resistor wattage
  76. 760  R$=STR$(R)+W$
  77. 770  LOCATE 6,17
  78. 780  PRINT R$
  79. 790  RETURN
  80. 800  '
  81. 810  '.....format input voltage read-out
  82. 820  BIN=VMIN:GOSUB 1120:V1$=B$            'correct any binary inaccuracy
  83. 830  BIN=VMAX:GOSUB 1120:V2$=B$
  84. 840  IF V1$=V2$ THEN V$="+"+V1$+"v.":GOTO 890
  85. 850  V$=V1$+" to"+V2$+"v."
  86. 860  LOCATE 4,30
  87. 870  PRINT V$;" unregulated"
  88. 880  LOCATE 3,2
  89. 890  PRINT V$;" source"
  90. 900  RETURN
  91. 910  '
  92. 920  '.....format zener diode read-out
  93. 930  BIN=VREG:GOSUB 1120                   'correct any binary inaccuracy
  94. 940  D$=B$                                 'corrected value of Vreg
  95. 950  D$=D$+"v. "
  96. 960  U$="#.###"
  97. 970  IF PD>=1 THEN U$="#.##"
  98. 980  IF PD>=10 THEN U$="##.#"
  99. 990  IF PD>=100 THEN U$="###"
  100. 1000  LOCATE 10,17
  101. 1010  PRINT D$;USING U$;PD;
  102. 1020  PRINT " watt minimum ";
  103. 1030  LOCATE 8,48:PRINT "COLOR"
  104. 1040  FOR H=9 TO 11:LOCATE H,48:PRINT "CALL":NEXT H
  105. 1050  LOCATE 12,48:PRINT "'"
  106. 1060  LOCATE 9,50:PRINT L$
  107. 1070  LOCATE 10,50:PRINT LL$
  108. 1080  LOCATE 8,30
  109. 1090  PRINT D$;"regulated "
  110. 1100  RETURN
  111. 1110  '
  112. 1120  '.....correct any binary inaccuracy
  113. 1130  B$=STR$(BIN):L=LEN(B$)               'correct any binary innaccuracy
  114. 1140  IF RIGHT$(B$,3)<>"001"THEN 1160
  115. 1150  B$=LEFT$(B$,L-1):B$=STR$(VAL(B$))
  116. 1160  RETURN
  117. 1170  '
  118. 1180  '.....erase previous line
  119. 1190  LOCATE CSRLIN-1:PRINT ER$:LOCATE CSRLIN-2
  120. 1200  RETURN
  121. 1210  '
  122. 1220  '.....block diagram
  123. 1230  COLOR 0,7
  124. 1240  PRINT " Vmax                                                              "
  125. 1250  PRINT " + SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND + V unregulated                        "
  126. 1260  PRINT " Vmin       VARPTRMOTORCOLOR                                                    "
  127. 1270  PRINT "    ResistorCALLRCALL                                                    "
  128. 1280  PRINT "            CLSBSAVE'                                                    "
  129. 1290  PRINT "             BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR + Vreg (regulated)                     "
  130. 1300  PRINT "            VARPTRMOTORCOLOR          VARPTRMOTORCOLOR                                       "
  131. 1310  PRINT " Zener diodeCALLDCALL          CALLLCALLload                                   "
  132. 1320  PRINT "            CLSBSAVE'          CLSBSAVE'                                       "
  133. 1330  PRINT " SOUND SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND' -                                      "
  134. 1340  FOR J=3 TO 12:LOCATE J,68:PRINT STRING$(13,32);:NEXT J
  135. 1350  COLOR 7,0
  136. 1360  RETURN
  137. 1370  '
  138. 1380  'HARDCOPY
  139. 1390  GOSUB 1500:LOCATE 25,2:COLOR 14,6
  140. 1400  PRINT " Press 1 to print screen, 2 to print screen & ";
  141. 1410  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  142. 1420  Z$=INKEY$:IF Z$="3"THEN GOSUB 1500:RETURN
  143. 1430  IF Z$="1"OR Z$="2"THEN GOSUB 1500:GOTO 1450
  144. 1440  GOTO 1420
  145. 1450  FOR QX=1 TO 24:FOR QY=1 TO 80
  146. 1460  LPRINT CHR$(SCREEN(QX,QY));
  147. 1470  NEXT QY:NEXT QX
  148. 1480  IF Z$="2"THEN LPRINT CHR$(12)
  149. 1490  GOTO 1390
  150. 1500  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  151.